home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Micro on the Apple Volume 2 (1981)(Micro Ink).zip / Micro on the Apple Volume 2 (1981)(Micro Ink).do / FLOATING POINT.bas < prev    next >
BASIC Source File  |  1996-12-24  |  2KB  |  58 lines

  1. 1  REM  ************************
  2. 2  REM  *                      *
  3. 3  REM  *    FLOATING POINT    *
  4. 4  REM  *       ROUTINES       *
  5. 5  REM  *     R.M. MOTTOLA     *
  6. 6  REM  *                      *
  7. 7  REM  *  COPYRIGHT (C) 1981  *
  8. 8  REM  *    MICRO INK, INC.   *
  9. 9  REM  * CHELMSFORD, MA 01824 *
  10. 10  REM *  ALL RIGHTS RESERVED *
  11. 11  REM *                      *
  12. 12  REM ************************ 
  13. 13  REM 
  14. 14  REM 
  15. 80 :
  16. 90 X = 0:D$ =  CHR$(4)
  17. 100  FOR N = 768 TO 792
  18. 110  READ A: POKE N,A
  19. 120  NEXT 
  20. 130  REM  ESTABLISH CONVERSION ROUTINE AT $300
  21. 140  DATA  165,105,24,105,2
  22. 150  DATA  164,106,144,1,200
  23. 160  DATA  32,249,234,160,6
  24. 170  DATA  185,157,0,153,25
  25. 180  DATA  3,136,16,247,96
  26. 190  HOME : PRINT : PRINT  TAB( 7)"FLOATING POINT CONVERSIONS"
  27. 200  PRINT : PRINT : PRINT "INSTRUCTIONS-"
  28. 210  PRINT : PRINT "ENTER VALUE YOU WISH CONVERTED TO FLOATING POINT REPRESENTATION.  IF YOU WISH TO PRINT THE CONVERSIONS ON THE"
  29. 220  PRINT "PRINTER, FOLLOW THE VALUE WITH A 'P'.  TO RETURN TO BASIC, HIT (RETURN) KEY."
  30. 230  VTAB 14: CALL  -868
  31. 240  INPUT "ENTER VALUE: ";A$
  32. 250  IF A$ = ""  THEN  VTAB 23: END : REM  ""=NULL$
  33. 260  IF  RIGHT$(A$,1) > <"P"  THEN 300
  34. 270  PRINT D$;"PR#1"
  35. 280  REM  PRINTER IN SLOT #1
  36. 290  PRINT : PRINT 
  37. 300 X =  VAL(A$): CALL 768
  38. 310  VTAB 18: CALL  -958: PRINT "VALUE= "X
  39. 320  PRINT : PRINT "ACCUMULATOR: $";
  40. 330  FOR N = 793 TO 799
  41. 340 A =  PEEK(N): GOSUB 450
  42. 350  NEXT : PRINT : PRINT 
  43. 360  PRINT "VARIABLE:    $";
  44. 370 B =  PEEK(105) + PEEK(106) *256 +2
  45. 380  FOR N = B TO B +4
  46. 390 A =  PEEK(N): GOSUB 450
  47. 400  NEXT : PRINT 
  48. 410  PRINT D$;"PR#0"
  49. 420  GOTO 230
  50. 430 :
  51. 440  REM  DECIMAL TO HEX SUB
  52. 450 A = A/16:B =  INT(A)
  53. 460 A = (A -B) *16
  54. 470 B = B +48: IF B >57  THEN B = B +7
  55. 480  PRINT  CHR$(B);
  56. 490 A = A +48: IF A >57  THEN A = A +7
  57. 500  PRINT  CHR$(A)" ";
  58. 510  RETURN